<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Application Programming Interface (API)</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="alias.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="alias.js"></script>

<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>



<script type="text/javascript">
  jQuery(document).ready(function () {
    if(gref){ // Number all _img and _table classes
      gref();
    }
  });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->

<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">nRF Gazell
   &#160;<span id="projectnumber">version 0.4.2</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group__gzp__02__api.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Application Programming Interface (API)</div>  </div>
<div class="ingroups"><a class="el" href="group__modules__02__gzp.html">Gazell Pairing</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="member-group"></a>
Pairing configuration defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga182a74e6f09944e693cde1be08fdacfc"></a><!-- doxytag: member="gzp_02_api::GZP_PAIRING_PIPE" ref="ga182a74e6f09944e693cde1be08fdacfc" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga182a74e6f09944e693cde1be08fdacfc">GZP_PAIRING_PIPE</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pipe reserved for initial pairing communication. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5061300f8d940942b9794fdbcb97b403"></a><!-- doxytag: member="gzp_02_api::GZP_DATA_PIPE" ref="ga5061300f8d940942b9794fdbcb97b403" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga5061300f8d940942b9794fdbcb97b403">GZP_DATA_PIPE</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pipe reserved for GZP encrypted data communication (one pipe only). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ba06ffcdb5c467a19e0a220f30c11db"></a><!-- doxytag: member="gzp_02_api::GZP_TX_RX_TRANS_DELAY" ref="ga6ba06ffcdb5c467a19e0a220f30c11db" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga6ba06ffcdb5c467a19e0a220f30c11db">GZP_TX_RX_TRANS_DELAY</a>&#160;&#160;&#160;10</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Time to wait between request and fetch packets in RX_PERIODS (2 timeslot periods) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga50ae5998a3561c07f92f95aa35d9bf61"></a><!-- doxytag: member="gzp_02_api::GZP_SYSTEM_ADDRESS_WIDTH" ref="ga50ae5998a3561c07f92f95aa35d9bf61" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga50ae5998a3561c07f92f95aa35d9bf61">GZP_SYSTEM_ADDRESS_WIDTH</a>&#160;&#160;&#160;4</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must equal Gazell base address length. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacffd37db5819d10e659089277021d55f"></a><!-- doxytag: member="gzp_02_api::GZP_VALIDATION_ID" ref="gacffd37db5819d10e659089277021d55f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gacffd37db5819d10e659089277021d55f">GZP_VALIDATION_ID</a>&#160;&#160;&#160;{0x32, 0x53, 0x66}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validation ID. Required to be shared by Host and Device. Not a secret. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3fcbd0b9d26bf7c76d375beb57238757"></a><!-- doxytag: member="gzp_02_api::GZP_VALIDATION_ID_LENGTH" ref="ga3fcbd0b9d26bf7c76d375beb57238757" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga3fcbd0b9d26bf7c76d375beb57238757">GZP_VALIDATION_ID_LENGTH</a>&#160;&#160;&#160;3</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validation ID length in bytes. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf35410042a151241941ca98c33f23b88"></a><!-- doxytag: member="gzp_02_api::GZP_HOST_ID_LENGTH" ref="gaf35410042a151241941ca98c33f23b88" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaf35410042a151241941ca98c33f23b88">GZP_HOST_ID_LENGTH</a>&#160;&#160;&#160;5</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Host ID length in bytes. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac5fd1ba6e4b161953182cfc099d1ad03"></a><!-- doxytag: member="gzp_02_api::GZP_SESSION_TOKEN_LENGTH" ref="gac5fd1ba6e4b161953182cfc099d1ad03" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gac5fd1ba6e4b161953182cfc099d1ad03">GZP_SESSION_TOKEN_LENGTH</a>&#160;&#160;&#160;GZP_HOST_ID_LENGTH</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Session token length in bytes. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18cd8f5df0c0a0eee57850d09a452fb6"></a><!-- doxytag: member="gzp_02_api::GZP_DYN_KEY_LENGTH" ref="ga18cd8f5df0c0a0eee57850d09a452fb6" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga18cd8f5df0c0a0eee57850d09a452fb6">GZP_DYN_KEY_LENGTH</a>&#160;&#160;&#160;(16 - GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic key length in bytes. <br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Device -&gt; Host packet definitions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52c1cfd2eda5d86a27b710d453c526b3"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ADDRESS_REQ_PAYLOAD_LENGTH" ref="ga52c1cfd2eda5d86a27b710d453c526b3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga52c1cfd2eda5d86a27b710d453c526b3">GZP_CMD_HOST_ADDRESS_REQ_PAYLOAD_LENGTH</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host address request" packet, payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga72f37ba7b90e25d00b4ae2cbfe5d7de2"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ADDRESS_FETCH_PAYLOAD_LENGTH" ref="ga72f37ba7b90e25d00b4ae2cbfe5d7de2" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga72f37ba7b90e25d00b4ae2cbfe5d7de2">GZP_CMD_HOST_ADDRESS_FETCH_PAYLOAD_LENGTH</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host address fetch" packet, payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bfeb56e6e24c8156db61c0c6719df01"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_REQ_SESSION_TOKEN" ref="ga1bfeb56e6e24c8156db61c0c6719df01" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga1bfeb56e6e24c8156db61c0c6719df01">GZP_CMD_HOST_ID_REQ_SESSION_TOKEN</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID request" packet, session token position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ddbedd035c7dde3d0d4110d184f1157"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_REQ_PAYLOAD_LENGTH" ref="ga9ddbedd035c7dde3d0d4110d184f1157" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga9ddbedd035c7dde3d0d4110d184f1157">GZP_CMD_HOST_ID_REQ_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_HOST_ID_REQ_SESSION_TOKEN + GZP_SESSION_TOKEN_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID request" payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga063e4ea2fe7de7ff03e2bb6f33811325"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_VALIDATION_ID" ref="ga063e4ea2fe7de7ff03e2bb6f33811325" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga063e4ea2fe7de7ff03e2bb6f33811325">GZP_CMD_HOST_ID_FETCH_VALIDATION_ID</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" packet <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7d8c0fcac47a02517e8830d56855077"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_PAYLOAD_LENGTH" ref="gab7d8c0fcac47a02517e8830d56855077" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gab7d8c0fcac47a02517e8830d56855077">GZP_CMD_HOST_ID_FETCH_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_HOST_ID_FETCH_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e563fa9e6f5d3e5a8476ff4d78cf2fa"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_PREPARE_PAYLOAD_LENGTH" ref="ga5e563fa9e6f5d3e5a8476ff4d78cf2fa" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga5e563fa9e6f5d3e5a8476ff4d78cf2fa">GZP_CMD_KEY_UPDATE_PREPARE_PAYLOAD_LENGTH</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update prepare" payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga479c9971d0c8418a52eb75fd8950dbed"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_VALIDATION_ID" ref="ga479c9971d0c8418a52eb75fd8950dbed" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga479c9971d0c8418a52eb75fd8950dbed">GZP_CMD_KEY_UPDATE_VALIDATION_ID</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update" packet, validation ID position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5909e15084f425c7cb7a94a13ae9f2ba"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_NEW_KEY" ref="ga5909e15084f425c7cb7a94a13ae9f2ba" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga5909e15084f425c7cb7a94a13ae9f2ba">GZP_CMD_KEY_UPDATE_NEW_KEY</a>&#160;&#160;&#160;(GZP_CMD_KEY_UPDATE_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update" packet, new key position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac13bfd1ba828af3f717a5804568b520"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_PAYLOAD_LENGTH" ref="gaac13bfd1ba828af3f717a5804568b520" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaac13bfd1ba828af3f717a5804568b520">GZP_CMD_KEY_UPDATE_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_KEY_UPDATE_NEW_KEY + GZP_DYN_KEY_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update" packet, payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4eebdb5ccff8a3092679717ce2fbad95"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_ENCRYPTED_USER_DATA_VALIDATION_ID" ref="ga4eebdb5ccff8a3092679717ce2fbad95" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga4eebdb5ccff8a3092679717ce2fbad95">GZP_CMD_ENCRYPTED_USER_DATA_VALIDATION_ID</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" packet, validation ID position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa7bd5f7db3733cfd3574b9c1f4d37c5b"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_ENCRYPTED_USER_DATA_PAYLOAD" ref="gaa7bd5f7db3733cfd3574b9c1f4d37c5b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaa7bd5f7db3733cfd3574b9c1f4d37c5b">GZP_CMD_ENCRYPTED_USER_DATA_PAYLOAD</a>&#160;&#160;&#160;((GZP_CMD_ENCRYPTED_USER_DATA_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" packet, user data position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac669b5eb6087018e56e105bae4321a89"></a><!-- doxytag: member="gzp_02_api::GZP_ENCRYPTED_USER_DATA_PACKET_OVERHEAD" ref="gac669b5eb6087018e56e105bae4321a89" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gac669b5eb6087018e56e105bae4321a89">GZP_ENCRYPTED_USER_DATA_PACKET_OVERHEAD</a>&#160;&#160;&#160;( GZP_CMD_ENCRYPTED_USER_DATA_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" packet, packet overhead length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga669cc0042151389183656fcc270b62cb"></a><!-- doxytag: member="gzp_02_api::GZP_ENCRYPTED_USER_DATA_MAX_LENGTH" ref="ga669cc0042151389183656fcc270b62cb" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga669cc0042151389183656fcc270b62cb">GZP_ENCRYPTED_USER_DATA_MAX_LENGTH</a>&#160;&#160;&#160;(17 - GZP_ENCRYPTED_USER_DATA_PACKET_OVERHEAD)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" packet, max payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae77600de42fcef5deaa2dffc27345e74"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_FETCH_RESP_PAYLOAD_LENGTH" ref="gae77600de42fcef5deaa2dffc27345e74" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gae77600de42fcef5deaa2dffc27345e74">GZP_CMD_FETCH_RESP_PAYLOAD_LENGTH</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">General "fetch response" packet, payload_length. <br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Host -&gt; Device packet definitions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18628801a88eb1c282775f998d159cc0"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ADDRESS_RESP_ADDRESS" ref="ga18628801a88eb1c282775f998d159cc0" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga18628801a88eb1c282775f998d159cc0">GZP_CMD_HOST_ADDRESS_RESP_ADDRESS</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host address fetch" response packet, address position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9b6ecc88f95c014382564b104517689"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ADDRESS_RESP_PAYLOAD_LENGTH" ref="gad9b6ecc88f95c014382564b104517689" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gad9b6ecc88f95c014382564b104517689">GZP_CMD_HOST_ADDRESS_RESP_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_HOST_ADDRESS_RESP_ADDRESS + GZP_SYSTEM_ADDRESS_WIDTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">///&lt; "Host address fetch" response packet, payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4adce983868b4568c6a06b8fc1340b20"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_RESP_VALIDATION_ID" ref="ga4adce983868b4568c6a06b8fc1340b20" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga4adce983868b4568c6a06b8fc1340b20">GZP_CMD_HOST_ID_FETCH_RESP_VALIDATION_ID</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" response packet, validation ID position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaec0bfafc1920d42985e8132dba546326"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_RESP_STATUS" ref="gaec0bfafc1920d42985e8132dba546326" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaec0bfafc1920d42985e8132dba546326">GZP_CMD_HOST_ID_FETCH_RESP_STATUS</a>&#160;&#160;&#160;(GZP_CMD_HOST_ID_FETCH_RESP_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" response packet, status position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8b8df05a07c695bb2564d271170331f"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_RESP_HOST_ID" ref="gac8b8df05a07c695bb2564d271170331f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gac8b8df05a07c695bb2564d271170331f">GZP_CMD_HOST_ID_FETCH_RESP_HOST_ID</a>&#160;&#160;&#160;(GZP_CMD_HOST_ID_FETCH_RESP_STATUS + 1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" response packet, Host ID position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga08c17bcbaf5f24b83f627bd1ae103844"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_HOST_ID_FETCH_RESP_PAYLOAD_LENGTH" ref="ga08c17bcbaf5f24b83f627bd1ae103844" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga08c17bcbaf5f24b83f627bd1ae103844">GZP_CMD_HOST_ID_FETCH_RESP_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_HOST_ID_FETCH_RESP_HOST_ID + GZP_HOST_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Host ID fetch" response packet, payload length <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa70c4659d3b486579e063568965be3fe"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_PREPARE_RESP_SESSION_TOKEN" ref="gaa70c4659d3b486579e063568965be3fe" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaa70c4659d3b486579e063568965be3fe">GZP_CMD_KEY_UPDATE_PREPARE_RESP_SESSION_TOKEN</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update prepare" response packet, session token position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga31baf44d94376a31d67308b4a4f844d1"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_KEY_UPDATE_PREPARE_RESP_PAYLOAD_LENGTH" ref="ga31baf44d94376a31d67308b4a4f844d1" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga31baf44d94376a31d67308b4a4f844d1">GZP_CMD_KEY_UPDATE_PREPARE_RESP_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_KEY_UPDATE_PREPARE_RESP_SESSION_TOKEN + GZP_SESSION_TOKEN_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Key update prepare" response packet, payload length position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84c1d02372740ccf1b07e73268cc5e"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_ENCRYPTED_USER_DATA_RESP_SESSION_TOKEN" ref="gaad84c1d02372740ccf1b07e73268cc5e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaad84c1d02372740ccf1b07e73268cc5e">GZP_CMD_ENCRYPTED_USER_DATA_RESP_SESSION_TOKEN</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" response packet, session token position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga92ba501194b56cdb08eaea364ee23c56"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_ENCRYPTED_USER_DATA_RESP_VALIDATION_ID" ref="ga92ba501194b56cdb08eaea364ee23c56" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga92ba501194b56cdb08eaea364ee23c56">GZP_CMD_ENCRYPTED_USER_DATA_RESP_VALIDATION_ID</a>&#160;&#160;&#160;(GZP_CMD_ENCRYPTED_USER_DATA_RESP_SESSION_TOKEN + GZP_SESSION_TOKEN_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" response packet, validation ID position <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa0711e1199e7ae89677b40d3322053b7"></a><!-- doxytag: member="gzp_02_api::GZP_CMD_ENCRYPTED_USER_DATA_RESP_PAYLOAD_LENGTH" ref="gaa0711e1199e7ae89677b40d3322053b7" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaa0711e1199e7ae89677b40d3322053b7">GZP_CMD_ENCRYPTED_USER_DATA_RESP_PAYLOAD_LENGTH</a>&#160;&#160;&#160;(GZP_CMD_ENCRYPTED_USER_DATA_RESP_VALIDATION_ID + GZP_VALIDATION_ID_LENGTH)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">"Encrypted user data" response packet, payload length position <br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f">gzp_key_select_t</a> { <a class="el" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3faba266e310cf7180b8ed1d680a63aec76">GZP_ID_EXCHANGE</a>, 
<a class="el" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3face965aae3e636886a3a20ac7bcebb5e4">GZP_KEY_EXCHANGE</a>, 
<a class="el" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3fa0fdbb345d7a7cffa0f5d33d27aadbc8f">GZP_DATA_EXCHANGE</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerator used for selecting the key to be used for encryption.  <a href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga9f361226afbc586b78ef2f71d2f2d3e0">gzp_cmd_t</a> { <br/>
&#160;&#160;<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0aa1786d3611a799488779c6e970c2e3c3">GZP_CMD_HOST_ADDRESS_REQ</a> =  0, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0abdc3cefd52154e54291fc2f00d8c7efe">GZP_CMD_HOST_ADDRESS_FETCH</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a778c2e2368270ba4aa28caf562368537">GZP_CMD_HOST_ID_REQ</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a96b914a5a540eecf14281789ff94180e">GZP_CMD_HOST_ID_FETCH</a>, 
<br/>
&#160;&#160;<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0aa8a05e54b39b1d48992ffe178dfd896f">GZP_CMD_KEY_UPDATE_PREPARE</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a5fea4a9050e98dbf6794e2026a85edd7">GZP_CMD_KEY_UPDATE</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a31ae37999e3ce41fd804fb94488655f4">GZP_CMD_ENCRYPTED_USER_DATA</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a99645f1af1c229488420310c520a27c7">GZP_CMD_FETCH_RESP</a>, 
<br/>
&#160;&#160;<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a138bd6ac53e0d228f1b8788e8d958873">GZP_CMD_HOST_ADDRESS_RESP</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a60833e51ad70995e2022c00c8a9b50ae">GZP_CMD_HOST_ID_FETCH_RESP</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a37adb9b73f7abba535ee08b3a71d5dda">GZP_CMD_KEY_UPDATE_PREPARE_RESP</a>, 
<a class="el" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0ac78d9e06d9021b21f0cf9a9588814864">GZP_CMD_ENCRYPTED_USER_DATA_RESP</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerator used in the first payload byte of each packet to indicate the packet type.  <a href="group__gzp__02__api.html#ga9f361226afbc586b78ef2f71d2f2d3e0">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52">gzp_id_req_res_t</a> { <br/>
&#160;&#160;<a class="el" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52ab51f874fa9692b24ac18f9536a14914b">GZP_ID_RESP_PENDING</a>, 
<a class="el" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a1d29b203c80fc64360929d55a5cdae38">GZP_ID_RESP_GRANTED</a>, 
<a class="el" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a102d54e19b17d381c3bc7bcf97b14f16">GZP_ID_RESP_REJECTED</a>, 
<a class="el" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a41000e655f952a6055b2aca3283a453d">GZP_ID_RESP_FAILED</a>, 
<br/>
&#160;&#160;<a class="el" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a820b18e010210a5b7792369ab7db90ce">GZP_ID_RESP_NO_REQUEST</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerator used to identify the state of the current Host ID request.  <a href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Misc. function prototypes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gadcea82d07590c71cc8cc07b6133638a7">gzp_crypt_set_session_token</a> (const uint8_t *token)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gab8b2d42a795185e9dd970d5ab988fa67">gzp_crypt_get_session_token</a> (uint8_t *dst_token)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gab4e21e991abe75ebf2ae3a765be0cb06">gzp_crypt_set_dyn_key</a> (const uint8_t *dyn_key)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga26a6e65daa12818457e9626fdfcdc16d">gzp_crypt_get_dyn_key</a> (uint8_t *dst_key)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga716af0575504167733f3b67da3c24511">gzp_set_host_id</a> (const uint8_t *src)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga5db495082721e37dc1302f85834d9230">gzp_get_host_id</a> (uint8_t *dst)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga03aa1e17eeb6b04caba05da3f3c44616">gzp_crypt_select_key</a> (<a class="el" href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f">gzp_key_select_t</a> key_select)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaab80c20738dc7bebba95704536e82e38">gzp_crypt</a> (uint8_t *dst, const uint8_t *src, uint8_t length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga288cb74335df9d0f81f29b632a27c254">gzp_validate_id</a> (const uint8_t *src_id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gafdf97aef9c54208cde14f91206d4fd3a">gzp_add_validation_id</a> (uint8_t *dst_id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga739fa1981fe1606f79dfbc305652e50c">gzp_random_numbers_generate</a> (uint8_t *dst, uint8_t n)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga6c2fd95c5a3c45e1a3bceebf72f5c990">gzp_update_radio_params</a> (const uint8_t *system_address)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga3cb2e9557ff22e0c6dfe552e59e226cc">gzp_generate_channels</a> (uint8_t *ch_dst, const uint8_t *address, uint8_t channel_set_size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga2b720c2fcfa4a0df48da14d88e58fe67">gzp_xor_cipher</a> (uint8_t *dst, const uint8_t *src, const uint8_t *pad, uint8_t length)</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Common Device and Host functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gae0c59c904a0ea56323274885ac3da45a">gzp_init</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga9da69761034ee9fa836e14cb4f08ada3">gzp_id_req_cancel</a> (void)</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Device functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaf0789378179910143ee80f7fc54eeede">gzp_address_req_send</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52">gzp_id_req_res_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga9304b33edaf45fbb4f00c3810ff5ee91">gzp_id_req_send</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga4994083175f26dbffef2d1c934a01248">gzp_crypt_data_send</a> (const uint8_t *src, uint8_t length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga8078977f492aab495d8228445e1156ca">nrf_gzp_flush_rx_fifo</a> (uint32_t pipe)</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Host functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaa00479ce99d1b3f598e02562b1bc5f20">gzp_pairing_enable</a> (bool enable)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gaedcecd51c981397d95b28409ce8caad6">gzp_host_execute</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga0ed91ce26125fb5ce911d8966e816362">gzp_address_exchanged</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga66b2bebd71fc8007817cfe6d71d330d8">gzp_id_req_received</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga935eef34ede1692180b77d090726b10d">gzp_id_req_reject</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga587ecf4915c37fc22dbb6354931d2386">gzp_id_req_grant</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gab5a1932563fe2b3c2a0712fe7baa46e3">gzp_crypt_user_data_received</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga6e357d81ff267ff79ad6bd462eff1ec0">gzp_crypt_user_data_read</a> (uint8_t *dst, uint8_t *length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#gadf63c23bec2d64dc9b977ab3ae2b8ed7">nrf_gzp_tx_complete</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga3c190ed94ee45206295f804b7ff284a9">nrf_gzp_tx_success</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2c70063d0c6bafd4486529842fe46eb"></a><!-- doxytag: member="gzp_02_api::nrf_gzp_tx_success_cb" ref="gab2c70063d0c6bafd4486529842fe46eb" args="(uint32_t pipe)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>nrf_gzp_tx_success_cb</b> (uint32_t pipe)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga6fc690423c7b8872e8f36bd678223261">nrf_gzp_reset_tx_complete</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga633c491a4e8904940b2341605f7a5c44">nrf_gzp_reset_tx_success</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gzp__02__api.html#ga82d40c440e1f046de35269527cece57b">nrf_gzp_disable_gzll</a> (void)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Gazell Pairing API. </p>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga0556a80b332d4bbbce2475ce86e6df3f"></a><!-- doxytag: member="nrf_gzp.h::gzp_key_select_t" ref="ga0556a80b332d4bbbce2475ce86e6df3f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f">gzp_key_select_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumerator used for selecting the key to be used for encryption. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga0556a80b332d4bbbce2475ce86e6df3faba266e310cf7180b8ed1d680a63aec76"></a><!-- doxytag: member="GZP_ID_EXCHANGE" ref="gga0556a80b332d4bbbce2475ce86e6df3faba266e310cf7180b8ed1d680a63aec76" args="" -->GZP_ID_EXCHANGE</em>&nbsp;</td><td>
<p>"Secret key" only </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0556a80b332d4bbbce2475ce86e6df3face965aae3e636886a3a20ac7bcebb5e4"></a><!-- doxytag: member="GZP_KEY_EXCHANGE" ref="gga0556a80b332d4bbbce2475ce86e6df3face965aae3e636886a3a20ac7bcebb5e4" args="" -->GZP_KEY_EXCHANGE</em>&nbsp;</td><td>
<p>"Secret key" and "Host ID" </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0556a80b332d4bbbce2475ce86e6df3fa0fdbb345d7a7cffa0f5d33d27aadbc8f"></a><!-- doxytag: member="GZP_DATA_EXCHANGE" ref="gga0556a80b332d4bbbce2475ce86e6df3fa0fdbb345d7a7cffa0f5d33d27aadbc8f" args="" -->GZP_DATA_EXCHANGE</em>&nbsp;</td><td>
<p>"Dynamic key" and "Host ID" </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="nrf__gzp_8h_source.html#l00172">172</a> of file <a class="el" href="nrf__gzp_8h_source.html">nrf_gzp.h</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="code" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3faba266e310cf7180b8ed1d680a63aec76" title="&quot;Secret key&quot; only">GZP_ID_EXCHANGE</a>,    
  <a class="code" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3face965aae3e636886a3a20ac7bcebb5e4" title="&quot;Secret key&quot; and &quot;Host ID&quot;">GZP_KEY_EXCHANGE</a>,   
  <a class="code" href="group__gzp__02__api.html#gga0556a80b332d4bbbce2475ce86e6df3fa0fdbb345d7a7cffa0f5d33d27aadbc8f" title="&quot;Dynamic key&quot; and &quot;Host ID&quot;">GZP_DATA_EXCHANGE</a>   
} <a class="code" href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f" title="Enumerator used for selecting the key to be used for encryption.">gzp_key_select_t</a>;
</pre></div>
</div>
</div>
<a class="anchor" id="ga9f361226afbc586b78ef2f71d2f2d3e0"></a><!-- doxytag: member="nrf_gzp.h::gzp_cmd_t" ref="ga9f361226afbc586b78ef2f71d2f2d3e0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__gzp__02__api.html#ga9f361226afbc586b78ef2f71d2f2d3e0">gzp_cmd_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumerator used in the first payload byte of each packet to indicate the packet type. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0aa1786d3611a799488779c6e970c2e3c3"></a><!-- doxytag: member="GZP_CMD_HOST_ADDRESS_REQ" ref="gga9f361226afbc586b78ef2f71d2f2d3e0aa1786d3611a799488779c6e970c2e3c3" args="" -->GZP_CMD_HOST_ADDRESS_REQ</em>&nbsp;</td><td>
<p>Host address request. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0abdc3cefd52154e54291fc2f00d8c7efe"></a><!-- doxytag: member="GZP_CMD_HOST_ADDRESS_FETCH" ref="gga9f361226afbc586b78ef2f71d2f2d3e0abdc3cefd52154e54291fc2f00d8c7efe" args="" -->GZP_CMD_HOST_ADDRESS_FETCH</em>&nbsp;</td><td>
<p>Host address fetch. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a778c2e2368270ba4aa28caf562368537"></a><!-- doxytag: member="GZP_CMD_HOST_ID_REQ" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a778c2e2368270ba4aa28caf562368537" args="" -->GZP_CMD_HOST_ID_REQ</em>&nbsp;</td><td>
<p>Host ID request. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a96b914a5a540eecf14281789ff94180e"></a><!-- doxytag: member="GZP_CMD_HOST_ID_FETCH" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a96b914a5a540eecf14281789ff94180e" args="" -->GZP_CMD_HOST_ID_FETCH</em>&nbsp;</td><td>
<p>Host ID fetch request. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0aa8a05e54b39b1d48992ffe178dfd896f"></a><!-- doxytag: member="GZP_CMD_KEY_UPDATE_PREPARE" ref="gga9f361226afbc586b78ef2f71d2f2d3e0aa8a05e54b39b1d48992ffe178dfd896f" args="" -->GZP_CMD_KEY_UPDATE_PREPARE</em>&nbsp;</td><td>
<p>Key update prepare. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a5fea4a9050e98dbf6794e2026a85edd7"></a><!-- doxytag: member="GZP_CMD_KEY_UPDATE" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a5fea4a9050e98dbf6794e2026a85edd7" args="" -->GZP_CMD_KEY_UPDATE</em>&nbsp;</td><td>
<p>Key update. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a31ae37999e3ce41fd804fb94488655f4"></a><!-- doxytag: member="GZP_CMD_ENCRYPTED_USER_DATA" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a31ae37999e3ce41fd804fb94488655f4" args="" -->GZP_CMD_ENCRYPTED_USER_DATA</em>&nbsp;</td><td>
<p>Encrypted user data. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a99645f1af1c229488420310c520a27c7"></a><!-- doxytag: member="GZP_CMD_FETCH_RESP" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a99645f1af1c229488420310c520a27c7" args="" -->GZP_CMD_FETCH_RESP</em>&nbsp;</td><td>
<p>Fetch response. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a138bd6ac53e0d228f1b8788e8d958873"></a><!-- doxytag: member="GZP_CMD_HOST_ADDRESS_RESP" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a138bd6ac53e0d228f1b8788e8d958873" args="" -->GZP_CMD_HOST_ADDRESS_RESP</em>&nbsp;</td><td>
<p>Host address response. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a60833e51ad70995e2022c00c8a9b50ae"></a><!-- doxytag: member="GZP_CMD_HOST_ID_FETCH_RESP" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a60833e51ad70995e2022c00c8a9b50ae" args="" -->GZP_CMD_HOST_ID_FETCH_RESP</em>&nbsp;</td><td>
<p>Host ID fetch response. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0a37adb9b73f7abba535ee08b3a71d5dda"></a><!-- doxytag: member="GZP_CMD_KEY_UPDATE_PREPARE_RESP" ref="gga9f361226afbc586b78ef2f71d2f2d3e0a37adb9b73f7abba535ee08b3a71d5dda" args="" -->GZP_CMD_KEY_UPDATE_PREPARE_RESP</em>&nbsp;</td><td>
<p>Key update prepare. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9f361226afbc586b78ef2f71d2f2d3e0ac78d9e06d9021b21f0cf9a9588814864"></a><!-- doxytag: member="GZP_CMD_ENCRYPTED_USER_DATA_RESP" ref="gga9f361226afbc586b78ef2f71d2f2d3e0ac78d9e06d9021b21f0cf9a9588814864" args="" -->GZP_CMD_ENCRYPTED_USER_DATA_RESP</em>&nbsp;</td><td>
<p>Encrypted user data response. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="nrf__gzp_8h_source.html#l00185">185</a> of file <a class="el" href="nrf__gzp_8h_source.html">nrf_gzp.h</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0aa1786d3611a799488779c6e970c2e3c3" title="Host address request.">GZP_CMD_HOST_ADDRESS_REQ</a> = 0,     
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0abdc3cefd52154e54291fc2f00d8c7efe" title="Host address fetch.">GZP_CMD_HOST_ADDRESS_FETCH</a>,       
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a778c2e2368270ba4aa28caf562368537" title="Host ID request.">GZP_CMD_HOST_ID_REQ</a>,              
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a96b914a5a540eecf14281789ff94180e" title="Host ID fetch request.">GZP_CMD_HOST_ID_FETCH</a>,            
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0aa8a05e54b39b1d48992ffe178dfd896f" title="Key update prepare.">GZP_CMD_KEY_UPDATE_PREPARE</a>,       
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a5fea4a9050e98dbf6794e2026a85edd7" title="Key update.">GZP_CMD_KEY_UPDATE</a>,               
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a31ae37999e3ce41fd804fb94488655f4" title="Encrypted user data.">GZP_CMD_ENCRYPTED_USER_DATA</a>,      
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a99645f1af1c229488420310c520a27c7" title="Fetch response.">GZP_CMD_FETCH_RESP</a>,               
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a138bd6ac53e0d228f1b8788e8d958873" title="Host address response.">GZP_CMD_HOST_ADDRESS_RESP</a>,        
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a60833e51ad70995e2022c00c8a9b50ae" title="Host ID fetch response.">GZP_CMD_HOST_ID_FETCH_RESP</a>,       
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0a37adb9b73f7abba535ee08b3a71d5dda" title="Key update prepare.">GZP_CMD_KEY_UPDATE_PREPARE_RESP</a>,  
  <a class="code" href="group__gzp__02__api.html#gga9f361226afbc586b78ef2f71d2f2d3e0ac78d9e06d9021b21f0cf9a9588814864" title="Encrypted user data response.">GZP_CMD_ENCRYPTED_USER_DATA_RESP</a>, 
} <a class="code" href="group__gzp__02__api.html#ga9f361226afbc586b78ef2f71d2f2d3e0" title="Enumerator used in the first payload byte of each packet to indicate the packet type.">gzp_cmd_t</a>;
</pre></div>
</div>
</div>
<a class="anchor" id="ga460dd99921f6d26ea5dc52f56c945b52"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_res_t" ref="ga460dd99921f6d26ea5dc52f56c945b52" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52">gzp_id_req_res_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumerator used to identify the state of the current Host ID request. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga460dd99921f6d26ea5dc52f56c945b52ab51f874fa9692b24ac18f9536a14914b"></a><!-- doxytag: member="GZP_ID_RESP_PENDING" ref="gga460dd99921f6d26ea5dc52f56c945b52ab51f874fa9692b24ac18f9536a14914b" args="" -->GZP_ID_RESP_PENDING</em>&nbsp;</td><td>
<p>ID response pending. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga460dd99921f6d26ea5dc52f56c945b52a1d29b203c80fc64360929d55a5cdae38"></a><!-- doxytag: member="GZP_ID_RESP_GRANTED" ref="gga460dd99921f6d26ea5dc52f56c945b52a1d29b203c80fc64360929d55a5cdae38" args="" -->GZP_ID_RESP_GRANTED</em>&nbsp;</td><td>
<p>ID response granted. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga460dd99921f6d26ea5dc52f56c945b52a102d54e19b17d381c3bc7bcf97b14f16"></a><!-- doxytag: member="GZP_ID_RESP_REJECTED" ref="gga460dd99921f6d26ea5dc52f56c945b52a102d54e19b17d381c3bc7bcf97b14f16" args="" -->GZP_ID_RESP_REJECTED</em>&nbsp;</td><td>
<p>ID response rejected. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga460dd99921f6d26ea5dc52f56c945b52a41000e655f952a6055b2aca3283a453d"></a><!-- doxytag: member="GZP_ID_RESP_FAILED" ref="gga460dd99921f6d26ea5dc52f56c945b52a41000e655f952a6055b2aca3283a453d" args="" -->GZP_ID_RESP_FAILED</em>&nbsp;</td><td>
<p>ID response failed. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga460dd99921f6d26ea5dc52f56c945b52a820b18e010210a5b7792369ab7db90ce"></a><!-- doxytag: member="GZP_ID_RESP_NO_REQUEST" ref="gga460dd99921f6d26ea5dc52f56c945b52a820b18e010210a5b7792369ab7db90ce" args="" -->GZP_ID_RESP_NO_REQUEST</em>&nbsp;</td><td>
<p>Default value. No ID request has yet been. </p>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="nrf__gzp_8h_source.html#l00207">207</a> of file <a class="el" href="nrf__gzp_8h_source.html">nrf_gzp.h</a>.</p>
<div class="fragment"><pre class="fragment">{
  <a class="code" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52ab51f874fa9692b24ac18f9536a14914b" title="ID response pending.">GZP_ID_RESP_PENDING</a>,   
  <a class="code" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a1d29b203c80fc64360929d55a5cdae38" title="ID response granted.">GZP_ID_RESP_GRANTED</a>,   
  <a class="code" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a102d54e19b17d381c3bc7bcf97b14f16" title="ID response rejected.">GZP_ID_RESP_REJECTED</a>,  
  <a class="code" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a41000e655f952a6055b2aca3283a453d" title="ID response failed.">GZP_ID_RESP_FAILED</a>,    
  <a class="code" href="group__gzp__02__api.html#gga460dd99921f6d26ea5dc52f56c945b52a820b18e010210a5b7792369ab7db90ce" title="Default value. No ID request has yet been.">GZP_ID_RESP_NO_REQUEST</a> 
} <a class="code" href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52" title="Enumerator used to identify the state of the current Host ID request.">gzp_id_req_res_t</a>;
</pre></div>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gadcea82d07590c71cc8cc07b6133638a7"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_set_session_token" ref="gadcea82d07590c71cc8cc07b6133638a7" args="(const uint8_t *token)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt_set_session_token </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>token</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the session token.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">token</td><td>Pointer to the session token to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab8b2d42a795185e9dd970d5ab988fa67"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_get_session_token" ref="gab8b2d42a795185e9dd970d5ab988fa67" args="(uint8_t *dst_token)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt_get_session_token </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst_token</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the session token.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst_token</td><td>Pointer to write the session token. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab4e21e991abe75ebf2ae3a765be0cb06"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_set_dyn_key" ref="gab4e21e991abe75ebf2ae3a765be0cb06" args="(const uint8_t *dyn_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt_set_dyn_key </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>dyn_key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the dynamic key.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dyn_key</td><td>Pointer to the dynamic key to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga26a6e65daa12818457e9626fdfcdc16d"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_get_dyn_key" ref="ga26a6e65daa12818457e9626fdfcdc16d" args="(uint8_t *dst_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt_get_dyn_key </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst_key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the dynamic key.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst_key</td><td>Pointer to write the dynamic key too. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga716af0575504167733f3b67da3c24511"></a><!-- doxytag: member="nrf_gzp.h::gzp_set_host_id" ref="ga716af0575504167733f3b67da3c24511" args="(const uint8_t *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void gzp_set_host_id </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the Host ID.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Pointer to the Host ID to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5db495082721e37dc1302f85834d9230"></a><!-- doxytag: member="nrf_gzp.h::gzp_get_host_id" ref="ga5db495082721e37dc1302f85834d9230" args="(uint8_t *dst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_get_host_id </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the Host ID.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Pointer to write the Host ID to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga03aa1e17eeb6b04caba05da3f3c44616"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_select_key" ref="ga03aa1e17eeb6b04caba05da3f3c44616" args="(gzp_key_select_t key_select)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt_select_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__gzp__02__api.html#ga0556a80b332d4bbbce2475ce86e6df3f">gzp_key_select_t</a>&#160;</td>
          <td class="paramname"><em>key_select</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Selecting what key-set that should be used when encrypting data using <a class="el" href="group__gzp__02__api.html#gaab80c20738dc7bebba95704536e82e38">gzp_crypt()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">key_select</td><td>Key-set to use. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaab80c20738dc7bebba95704536e82e38"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt" ref="gaab80c20738dc7bebba95704536e82e38" args="(uint8_t *dst, const uint8_t *src, uint8_t length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_crypt </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Encypt / decrypt data.</p>
<p>The current "session token" will be used as initialization vector (IV). The AES key to be used is selected by <a class="el" href="group__gzp__02__api.html#ga03aa1e17eeb6b04caba05da3f3c44616">gzp_crypt_select_key()</a>. AES is a symmetric encryption scheme, this function can be used to perform both encryption and decryption.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Destination to write encrypted data to. Should be 16 bytes long. </td></tr>
    <tr><td class="paramname">src</td><td>Source data to encrypt. </td></tr>
    <tr><td class="paramname">length</td><td>Length in bytes of src. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga288cb74335df9d0f81f29b632a27c254"></a><!-- doxytag: member="nrf_gzp.h::gzp_validate_id" ref="ga288cb74335df9d0f81f29b632a27c254" args="(const uint8_t *src_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_validate_id </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src_id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Compare the *src_id with a pre-defined validation ID.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">src_id</td><td>Pointer to the source validation ID to compare to.</td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>If *src_id equals the pre-defined ID. </td></tr>
    <tr><td class="paramname">false</td><td>If *src_id does not equal the pre-defined ID. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafdf97aef9c54208cde14f91206d4fd3a"></a><!-- doxytag: member="nrf_gzp.h::gzp_add_validation_id" ref="gafdf97aef9c54208cde14f91206d4fd3a" args="(uint8_t *dst_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_add_validation_id </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst_id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Add the pre-defined validation ID to dst_id. GZP_VALIDATION_ID_LENGTH bytes will be added.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst_id</td><td>Pointer to add the GZP validation ID to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga739fa1981fe1606f79dfbc305652e50c"></a><!-- doxytag: member="nrf_gzp.h::gzp_random_numbers_generate" ref="ga739fa1981fe1606f79dfbc305652e50c" args="(uint8_t *dst, uint8_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_random_numbers_generate </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Generate random bytes.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Destination to write the random bytes to. </td></tr>
    <tr><td class="paramname">n</td><td>Number of bytes to generate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6c2fd95c5a3c45e1a3bceebf72f5c990"></a><!-- doxytag: member="nrf_gzp.h::gzp_update_radio_params" ref="ga6c2fd95c5a3c45e1a3bceebf72f5c990" args="(const uint8_t *system_address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_update_radio_params </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>system_address</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Update the channel table and the system address.</p>
<p>The channel table is updated to pseudo-random set generated using the system address. The channel table still includes GZP_CHANNEL_MAX and GZP_CHANNEL_MIN. The system address is applied to base address 1 and therefore applies to pipes 1-7.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">system_address</td><td>Pointer to the system_address to set.</td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>If theradio parameters were updated successfully. </td></tr>
    <tr><td class="paramname">false</td><td>If there was an error updated the radio parameters. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3cb2e9557ff22e0c6dfe552e59e226cc"></a><!-- doxytag: member="nrf_gzp.h::gzp_generate_channels" ref="ga3cb2e9557ff22e0c6dfe552e59e226cc" args="(uint8_t *ch_dst, const uint8_t *address, uint8_t channel_set_size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_generate_channels </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>ch_dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>channel_set_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Generate a set of channels from a 4 byte address.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ch_dst</td><td>Destination to write the channel set to. The channel set includes GZP_CHANNEL_MAX and GZP_CHANNEL_MIN. </td></tr>
    <tr><td class="paramname">address</td><td>Four byte address to generate the channel set from. </td></tr>
    <tr><td class="paramname">channel_set_size</td><td>Size of the channel set to generate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2b720c2fcfa4a0df48da14d88e58fe67"></a><!-- doxytag: member="nrf_gzp.h::gzp_xor_cipher" ref="ga2b720c2fcfa4a0df48da14d88e58fe67" args="(uint8_t *dst, const uint8_t *src, const uint8_t *pad, uint8_t length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_xor_cipher </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>pad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Perform an XOR on two byte strings.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Destination to write the result to. Should be of size length. </td></tr>
    <tr><td class="paramname">src</td><td></td></tr>
    <tr><td class="paramname">pad</td><td></td></tr>
    <tr><td class="paramname">length</td><td>Number of bytes to perform the XOR operation on. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae0c59c904a0ea56323274885ac3da45a"></a><!-- doxytag: member="nrf_gzp.h::gzp_init" ref="gae0c59c904a0ea56323274885ac3da45a" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initialization function. This function initializes the Gazell Pairing Library.</p>
<p>This function must be called before any of the other Gazell Pairing Library functions are used and must be called <b>after</b> gzll_init() is called. </p>

</div>
</div>
<a class="anchor" id="ga9da69761034ee9fa836e14cb4f08ada3"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_cancel" ref="ga9da69761034ee9fa836e14cb4f08ada3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_id_req_cancel </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for cancelling an ongoing (pending) "Host ID request".</p>
<p>After calling this function the "Host ID request" status will go to "ID request Idle". </p>

</div>
</div>
<a class="anchor" id="gaf0789378179910143ee80f7fc54eeede"></a><!-- doxytag: member="nrf_gzp.h::gzp_address_req_send" ref="gaf0789378179910143ee80f7fc54eeede" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_address_req_send </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for sending a "system address" request to a Host.</p>
<p>When calling this function the Device will attempt acquiring the "system address" from any Host within close proximity.</p>
<p>If a host is located within close proximity and pairing is enabled in the Host, a "system address" will be sent in return to the Device.</p>
<p>The new "system address" will apply immediately in the Device, and the new "system address" will be stored in non volatile (NV) memory.</p>
<p>Note. Using OTP devices limits the number of times a new "system address" can be stored in NV memory.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>if new "system address" was received from a Host. </td></tr>
    <tr><td class="paramname">false</td><td>if no "system address" was received from a Host. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9304b33edaf45fbb4f00c3810ff5ee91"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_send" ref="ga9304b33edaf45fbb4f00c3810ff5ee91" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__gzp__02__api.html#ga460dd99921f6d26ea5dc52f56c945b52">gzp_id_req_res_t</a> gzp_id_req_send </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for sending a "Host ID request" to a Host.</p>
<p>The "Host ID" is needed to be able to send encrypted data using <a class="el" href="group__gzp__02__api.html#ga4994083175f26dbffef2d1c934a01248">gzp_crypt_data_send()</a>.</p>
<p>The request will be sent using the "system address" previously received using <a class="el" href="group__gzp__02__api.html#gaf0789378179910143ee80f7fc54eeede">gzp_address_req_send()</a>.</p>
<p>It is not required that the Host is within close proximity in order to acquire the "Host ID".</p>
<p>The new "Host ID" will apply immediately for the Device, and the new "Host ID" will be stored in non volatile (NV) memory.</p>
<p>Note. Using OTP devices limits the number of times a new "Host ID" can be stored in NV memory.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">GZP_ID_RESP_PENDING</td><td>if a "Host ID request" has been sent to the Host, but the Host application has not yet decided whether to Grant or Reject the "ID request". </td></tr>
    <tr><td class="paramname">GZP_ID_RESP_GRANTED</td><td>if the "Host ID" has been received from the Host. The received "Host ID" will be stored in non volatile memory. </td></tr>
    <tr><td class="paramname">GZP_ID_RESP_REJECTED</td><td>if the Host application has rejected the "Host ID request". </td></tr>
    <tr><td class="paramname">GZP_ID_RESP_FAILED</td><td>if failing to send a request or receive a response from the Host. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4994083175f26dbffef2d1c934a01248"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_data_send" ref="ga4994083175f26dbffef2d1c934a01248" args="(const uint8_t *src, uint8_t length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_crypt_data_send </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for sending encrypted user data to the Host.</p>
<p>Before any data can be sent the Device must acquire both the Host's "system address" by using <a class="el" href="group__gzp__02__api.html#gaf0789378179910143ee80f7fc54eeede">gzp_address_req_send()</a> and the "Host ID" by using <a class="el" href="group__gzp__02__api.html#ga9304b33edaf45fbb4f00c3810ff5ee91">gzp_id_req_send()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">*src</td><td>is a pointer to the data packet to be sent. </td></tr>
    <tr><td class="paramname">length</td><td>is the length of the data packet to be sent.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>if the data was successfully transmitted and decrypted by the Host. </td></tr>
    <tr><td class="paramname">false</td><td>if data transmission failed or Host failed to decryption data correctly. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8078977f492aab495d8228445e1156ca"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_flush_rx_fifo" ref="ga8078977f492aab495d8228445e1156ca" args="(uint32_t pipe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nrf_gzp_flush_rx_fifo </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pipe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Flush the GZLL RX FIFO for a specific pipe while GZLL is disabled.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pipe</td><td>Pipe. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa00479ce99d1b3f598e02562b1bc5f20"></a><!-- doxytag: member="nrf_gzp.h::gzp_pairing_enable" ref="gaa00479ce99d1b3f598e02562b1bc5f20" args="(bool enable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_pairing_enable </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for enabling/disabling pairing in a host. When pairing is enabled the host will be monitoring for "system address" and "Host ID" requests from Devices.</p>
<p>A "system address request" received from a Device will always be granted. When a "host ID request" has been received, the Host application have to grant, reject or cancel this by using one of the following functions:</p>
<ul>
<li><a class="el" href="group__gzp__02__api.html#ga587ecf4915c37fc22dbb6354931d2386">gzp_id_req_grant()</a></li>
<li><a class="el" href="group__gzp__02__api.html#ga935eef34ede1692180b77d090726b10d">gzp_id_req_reject()</a></li>
<li><a class="el" href="group__gzp__02__api.html#ga9da69761034ee9fa836e14cb4f08ada3">gzp_id_req_cancel()</a></li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td><ul>
<li>true enables pairing. </li>
<li>false disables pairing. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaedcecd51c981397d95b28409ce8caad6"></a><!-- doxytag: member="nrf_gzp.h::gzp_host_execute" ref="gaedcecd51c981397d95b28409ce8caad6" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_host_execute </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Execute the Gazell Pairing Library Host operation.</p>
<p>This function must be called regularly by the Host application. </p>

</div>
</div>
<a class="anchor" id="ga0ed91ce26125fb5ce911d8966e816362"></a><!-- doxytag: member="nrf_gzp.h::gzp_address_exchanged" ref="ga0ed91ce26125fb5ce911d8966e816362" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_address_exchanged </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Address exchanged check.</p>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>If a "system address" was delivered to a requesting Device during the previous call to <a class="el" href="group__gzp__02__api.html#gaedcecd51c981397d95b28409ce8caad6">gzp_host_execute()</a>; </td></tr>
    <tr><td class="paramname">false</td><td>Otherwise. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga66b2bebd71fc8007817cfe6d71d330d8"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_received" ref="ga66b2bebd71fc8007817cfe6d71d330d8" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_id_req_received </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for checking if a "Host ID request" has been received from a Device.</p>
<p>If a request has been received, the Pairing library will enter "ID request pending" state.</p>
<p>The application is responsible for responding to this request by calling one of the following functions:</p>
<ul>
<li><a class="el" href="group__gzp__02__api.html#ga587ecf4915c37fc22dbb6354931d2386">gzp_id_req_grant()</a></li>
<li><a class="el" href="group__gzp__02__api.html#ga935eef34ede1692180b77d090726b10d">gzp_id_req_reject()</a></li>
<li><a class="el" href="group__gzp__02__api.html#ga9da69761034ee9fa836e14cb4f08ada3">gzp_id_req_cancel()</a></li>
</ul>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>if a "Host ID request" has been received (internal state is "ID request pending") </td></tr>
    <tr><td class="paramname">false</td><td>if no "Host ID request" has been received (internal state is "ID request idle") </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga935eef34ede1692180b77d090726b10d"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_reject" ref="ga935eef34ede1692180b77d090726b10d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_id_req_reject </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for rejecting the previously received "Host ID request". This function should be called only when a "Host ID request" has been received (internal state is "ID request pending").</p>
<p>The internal state of the Pairing library will remain "ID request pending" until the a "reject" message has been successfully transmitted to the requesting Device. After this the internal state will change to "ID request idle". </p>

</div>
</div>
<a class="anchor" id="ga587ecf4915c37fc22dbb6354931d2386"></a><!-- doxytag: member="nrf_gzp.h::gzp_id_req_grant" ref="ga587ecf4915c37fc22dbb6354931d2386" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gzp_id_req_grant </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for granting the previously received "Host ID request". This function should be called only when a "Host ID request" has been received (internal state is "ID request pending").</p>
<p>The internal state of the Pairing library will remain "ID request pending" until the "Host ID" has been successfully transmitted to the requesting Device. After this the internal state will change to "ID request idle". </p>

</div>
</div>
<a class="anchor" id="gab5a1932563fe2b3c2a0712fe7baa46e3"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_user_data_received" ref="gab5a1932563fe2b3c2a0712fe7baa46e3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_crypt_user_data_received </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if user data has been received.</p>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>If encrypted user data has been received. </td></tr>
    <tr><td class="paramname">false</td><td>Otherwise. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6e357d81ff267ff79ad6bd462eff1ec0"></a><!-- doxytag: member="nrf_gzp.h::gzp_crypt_user_data_read" ref="ga6e357d81ff267ff79ad6bd462eff1ec0" args="(uint8_t *dst, uint8_t *length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gzp_crypt_user_data_read </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Function for reading encrypted user data.</p>
<p>Note that the read user data will be automatically decrypted. Only data that was decrypted correctly will be presented.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dst*</td><td>is a pointer to where the received data will be written. </td></tr>
    <tr><td class="paramname">length*</td><td>is a pointer for returning the number of bytes received. Only 1 byte will be writtem to length*.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>if data has been received and is written to dst* </td></tr>
    <tr><td class="paramname">false</td><td>if no data has been received. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadf63c23bec2d64dc9b977ab3ae2b8ed7"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_tx_complete" ref="gadf63c23bec2d64dc9b977ab3ae2b8ed7" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool nrf_gzp_tx_complete </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check whether current GZP packet transaction has completed.</p>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td></td></tr>
    <tr><td class="paramname">false</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3c190ed94ee45206295f804b7ff284a9"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_tx_success" ref="ga3c190ed94ee45206295f804b7ff284a9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool nrf_gzp_tx_success </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check whether previous GZP packet transaction was successful.</p>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td></td></tr>
    <tr><td class="paramname">false</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6fc690423c7b8872e8f36bd678223261"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_reset_tx_complete" ref="ga6fc690423c7b8872e8f36bd678223261" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nrf_gzp_reset_tx_complete </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset tx_complete status. </p>

</div>
</div>
<a class="anchor" id="ga633c491a4e8904940b2341605f7a5c44"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_reset_tx_success" ref="ga633c491a4e8904940b2341605f7a5c44" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nrf_gzp_reset_tx_success </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset tx_success status. </p>

</div>
</div>
<a class="anchor" id="ga82d40c440e1f046de35269527cece57b"></a><!-- doxytag: member="nrf_gzp.h::nrf_gzp_disable_gzll" ref="ga82d40c440e1f046de35269527cece57b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nrf_gzp_disable_gzll </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Disable Gazell and sleep while waiting for nrf_gzll_disabled callback. </p>

</div>
</div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">
      Copyright &copy 2006-2011 <a href="http://www.nordicsemi.no" style="text-decoration:none">Nordic Semiconductor</a>.
      All Rights Reserved.
      <a href="disclaimer.html">Disclaimer</a>
    </li>
   </ul>
 </div>


</body>
</html>
